home *** CD-ROM | disk | FTP | other *** search
/ Software 2000 / Software 2000 Volume 1 (Disc 1 of 2).iso / utilities / u035b.dms / u035b.adf / Requesters / Example3.c < prev    next >
C/C++ Source or Header  |  1990-01-30  |  5KB  |  119 lines

  1. /* Example3                                                             */
  2. /* This example opens a Simple requester by calling the function        */
  3. /* AutoRequest. It displays a message "Insert a disk in any drive!",    */
  4. /* and allows the user to choose between "Yes" and "No". The program    */
  5. /* will continue to open the requester until the user has chosen "Yes", */
  6. /* or the user has inserted a disk.                                     */
  7.  
  8.  
  9.  
  10. #include <intuition/intuition.h>
  11.  
  12.  
  13.  
  14. struct IntuitionBase *IntuitionBase;
  15.  
  16.  
  17.  
  18. /* The "body" text for the requester: */
  19. struct IntuiText my_body_text=
  20. {
  21.   0,       /* FrontPen, colour 0 (blue). */
  22.   0,       /* BackPen, not used since JAM1. */
  23.   JAM1,    /* DrawMode, do not change the background. */
  24.   15,      /* LedtEdge, 15 pixels out. */
  25.   5,       /* TopEdge, 5 lines down. */
  26.   NULL,    /* ITextFont, default font. */
  27.   "Insert a disk in any drive!", /* IText, the body text. */
  28.   NULL,    /* NextText, no more IntuiText structures link. */
  29. };
  30.  
  31. /* The positive text: */
  32. /* (Printed inside the left gadget) */
  33. struct IntuiText my_positive_text=
  34. {
  35.   0,       /* FrontPen, colour 0 (blue). */
  36.   0,       /* BackPen, not used since JAM1. */
  37.   JAM1,    /* DrawMode, do not change the background. */
  38.   6,       /* LedtEdge, 6 pixels out. */
  39.   3,       /* TopEdge, 3 lines down. */
  40.   NULL,    /* ITextFont, default font. */
  41.   "Yes",   /* IText, the text that will be printed. */
  42.   NULL,    /* NextText, no more IntuiText structures link. */
  43. };
  44.  
  45. /* The negative text: */
  46. /* (Printed inside the right gadget) */
  47. struct IntuiText my_negative_text=
  48. {
  49.   0,       /* FrontPen, colour 0 (blue). */
  50.   0,       /* BackPen, not used since JAM1. */
  51.   JAM1,    /* DrawMode, do not change the background. */
  52.   6,       /* LedtEdge, 6 pixels out. */
  53.   3,       /* TopEdge, 3 lines down. */
  54.   NULL,    /* ITextFont, default font. */
  55.   "No",    /* IText, the text that will be printed. */
  56.   NULL,    /* NextText, no more IntuiText structures link. */
  57. };
  58.  
  59.  
  60.  
  61. main()
  62. {
  63.   /* Before we can use Intuition we need to open the Intuition Library: */
  64.   IntuitionBase = (struct IntuitionBase *)
  65.     OpenLibrary( "intuition.library", 0 );
  66.   
  67.   if( IntuitionBase == NULL )
  68.     exit(); /* Could NOT open the Intuition Library! */
  69.  
  70.  
  71.  
  72.   while( !AutoRequest( NULL, &my_body_text, &my_positive_text,
  73.                        &my_negative_text, DISKINSERTED, NULL, 320, 72) );
  74.  
  75.   /***********************************************************************/
  76.   /* NULL,              no pointer to a window structure.                */
  77.   /* &my_body_text,     pointer to a IntuiText str. cont. the body text  */
  78.   /* &my_positive_text, pointer to a IntuiText str. cont. the pos. text  */
  79.   /* &my_negative_text, pointer to a IntuiText str. cont. the neg. text  */
  80.   /* DISKINSERTED,      IDCMP flags which will satisfy the positive gad. */
  81.   /* NULL,              IDCMP flags which will satisfy the negative gad. */
  82.   /* 320,               Width, 320 pixels wide.                          */
  83.   /* 72,                Height, 72 lines high.                           */
  84.   /*                                                                     */
  85.   /* Intuition will automatically set the IDCMP flag RELVERIFY for both  */
  86.   /* of the gadgets, so we do not need to set the DISKINSERTED flag for  */
  87.   /* the "positive" gadget.                                              */
  88.   /*                                                                     */
  89.   /* while( !AutoRequest(...) );                                         */
  90.   /* Since AutoRequest returns TRUE ("Yes") or FALSE ("No") we neggate   */
  91.   /* it (!), and can then use the statement in a while loop. As long as  */
  92.   /* the user selects the "No" gadget AutoRequest returns FALSE which    */
  93.   /* is changed into TRUE, and we stay in the while loop. When the user, */
  94.   /* on the other hand, selects the "Yes" gadget, or inserts a disk,     */
  95.   /* AutoRequest() returns TRUE, changed into FALSE, and we leave the    */
  96.   /* while loop.                                                         */
  97.   /*                                                                     */
  98.   /* The requester will look like this:                                  */
  99.   /*                                                                     */
  100.   /* ---------------------------------------                             */
  101.   /* | System Request ================[*][*]                             */
  102.   /* ---------------------------------------                             */
  103.   /* | Insert a disk in any drive!      |  |                             */
  104.   /* |                                  |  |                             */
  105.   /* |                                  |  |                             */
  106.   /* | -------                   ------ |  |                             */
  107.   /* | | Yes |                   | No | |  |                             */
  108.   /* | -------                   ------ |  |                             */
  109.   /* ------------------------------------[*]                             */
  110.   /*                                                                     */
  111.   /***********************************************************************/
  112.  
  113.  
  114.  
  115.   /* Close the Intuition Library since we have opened it: */
  116.   CloseLibrary( IntuitionBase );
  117.   
  118.   /* THE END */
  119. }